﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ferhrosa.Dados;

namespace MecSom.Dados {
    public class Servico : Entidade {

        public int CodServico { get; set; }
        public int CodCliente { get; set; }
        public string Tipo { get; set; }
        public string Marca { get; set; }
        public string Modelo { get; set; }
        public string Defeito { get; set; }
        public string Acoes { get; set; }
        public int? Orcamento { get; set; }
        public bool Pago { get; set; }
        public string Situacao { get; set; }
        public DateTime? SituacaoOrcamento { get; set; }
        public DateTime? SituacaoCancelado { get; set; }
        public DateTime? SituacaoEsperandoPecas { get; set; }
        public DateTime? SituacaoAprovado { get; set; }
        public DateTime? SituacaoPronto { get; set; }
        public DateTime? SituacaoEntregue { get; set; }
        public string Observacoes { get; set; }


        public static List<Servico> Carregar(int codCliente) {
            using (var procedure = new StoredProcedure("CarregarServico")) {
                procedure.DefinirParametro("@codCliente", codCliente);

                return procedure.CarregarListaRegistros<Servico>();
            }
        }

        public static List<string> CarregarTipos() {
            using (var procedure = new StoredProcedure("CarregarServicoTipos")) {
                return procedure.CarregarListaValores<string>();
            }
        }

        public static List<string> CarregarMarcas(string tipo) {
            using (var procedure = new StoredProcedure("CarregarServicoMarcas")) {
                procedure.DefinirParametro("@tipo", tipo);

                return procedure.CarregarListaValores<string>();
            }
        }

        public static List<string> CarregarModelos(string tipo, string marca) {
            using (var procedure = new StoredProcedure("CarregarServicoModelos")) {
                procedure.DefinirParametro("@tipo", tipo);
                procedure.DefinirParametro("@marca", marca);

                return procedure.CarregarListaValores<string>();
            }
        }
    }
}
